const fs = require('fs'),
    path = require('path'),
    getPathInfo = require('./getPathInfo'),

/**
 * 获取指定路径目录下所有文件列表
 * @param {string} dirPath  <必选> 目录路径
 * @param {array} result    <可选> 将结果往哪个队列中添加（用于内部循环调用） 
 * @returns array 文件列表
 */
getFiles = (dirPath,result)=>{
    result = result || [];
    const isDir = fs.statSync(dirPath).isDirectory();
    if(isDir){
        let items = fs.readdirSync(dirPath);
        items.forEach(item => {
            let itemPath = path.join(dirPath,item);
            switch (getPathInfo(itemPath).type) {
                case 'file':
                    result.push(itemPath);
                break;
                case 'dir':
                    getFiles(itemPath,result);
                break;
            }
        });
    }else{
        throw new Error("传入的不是有效的目录路径");
    };
    return result;
};

module.exports = getFiles;